The present invention relates generally to streaming media devices, and more particularly to methods and apparatuses that provide improved end-user startup times when streaming content.
Today, nearly every computer user is well accustomed to the broadcast television medium. When a new television channel is requested, the new channel is generally displayed (rendered) very quickly. The same can be said for conventional broadcast radio stations.
Unfortunately, the same cannot be said for conventional Internet streamed content. Streaming media is typically provided from a server device to a client device over the Internet or other like network. For a variety of technical reasons, the end-user experience can be degraded, for example, by pauses experienced in the rendering due to late-arriving/resent data. Such pauses, however, tend to occur randomly and in certain configurations occur very rarely. However, there is one pause that most end-users experience every time they select a streaming media program, namely, a slow startup time.
This poor startup experience tends to inhibit the adoption of streaming media in many markets. It is also tends to reduce the amount of time end-users are willing to use the technology. Thus, channel xe2x80x9csurfingxe2x80x9d is largely unacceptable with conventional streaming techniques. Hence, there is a need for improved streaming media methods and apparatuses that can significantly reduce the startup time that the end-user experiences.
In accordance with certain aspects of the present invention, improved streaming media methods and apparatuses are provided that significantly reduce the startup time that the end-user experiences.
By way of example, the above stated needs and others are met by a system in accordance with certain implementations of the present invention. The system includes a client device and a server device, which are operatively connected through a communication link. The client device is configured to send at least one startup request to the server device over the communication link. The startup request identifies a streamable media content that is to be provided to the client device, a communication link bandwidth associated with the communication link, and an amount of the desired streamable media content that is to be provided at a bitrate greater than the encoded bitrate, but no greater than about the communication link bandwidth. The server device is configured to buffer at least the amount of the streamable media content and transmit the amount of the buffered streamable media content at the higher bitrate. After transmitting the amount of the buffered streamable media content, the server device transmits subsequent portions of the streamable media content to the client device at a bitrate about equal to the encoded bitrate. The client device is configured to buffer received streamable media content, and subsequently render the buffered streamed media content.
In accordance with certain implementations, the server device locates a discrete rendering point in the amount of the buffered streamable media content and initiates transmission beginning with the discrete rendering point.
In accordance with certain further implementations, the client device determines the communication link bandwidth.